perm filename CALU.MF[CM,DEK]1 blob
sn#798963 filedate 1985-07-12 generic text, type C, neo UTF8
COMMENT ā VALID 00028 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 % Calligraphic capitals with `fixed' pens, by N. N. Billawala (1985).
C00004 00003 cmchar "Calligraphic A"
C00006 00004 cmchar "Calligraphic B"
C00007 00005 cmchar "Calligraphic C"
C00008 00006 cmchar "Calligraphic D"
C00009 00007 cmchar "Calligraphic E"
C00010 00008 cmchar "Calligraphic F"
C00011 00009 cmchar "Calligraphic G"
C00012 00010 cmchar "Calligraphic H"
C00014 00011 cmchar "Calligraphic I"
C00015 00012 cmchar "Calligraphic J"
C00016 00013 cmchar "Calligraphic K"
C00017 00014 cmchar "Calligraphic L"
C00018 00015 cmchar "Calligraphic M"
C00020 00016 cmchar "Calligraphic N"
C00022 00017 cmchar "Calligraphic O"
C00023 00018 cmchar "Calligraphic P"
C00024 00019 cmchar "Calligraphic Q"
C00025 00020 cmchar "Calligraphic R"
C00026 00021 cmchar "Calligraphic S"
C00027 00022 cmchar "Calligraphic T"
C00028 00023 cmchar "Calligraphic U"
C00029 00024 cmchar "Calligraphic V"
C00032 00025 cmchar "Calligraphic W"
C00034 00026 cmchar "Calligraphic X"
C00035 00027 cmchar "Calligraphic Y"
C00036 00028 cmchar "Calligraphic Z"
C00038 ENDMK
Cā;
% Calligraphic capitals with `fixed' pens, by N. N. Billawala (1985).
% These letters are intended for math, hence |math_fitting| is assumed.
% Character codes \0101 through \0132 are generated.
cmchar "Calligraphic A";
beginchar("A",14.4u#,cap_height#,0);
italcorr .5u#;
adjust_fit(-.05w#,0); pickup cal.nib;
lft x5=.55w; x7=.9w;
top y5=h+.5cap_curve; bot y7=bot_flourish_line;
z6=.3[z7,z5]-bend;
pickup tilted.nib;
lft x1=.05w; x2=.2w; rt x4=x5;
y1=y2+.1h; bot y2=bot_flourish_line; top y4=h+.5cap_curve;
y3=y6; z3=whatever[z2,z4]+2bend;
draw (z1..tension 1.2..{right}z2) soft flex(z2,z3,z4); % left diagonal
pickup cal.nib;
erase fill (0,bot y5)--(w,bot y5)--(w,top y5)--(0,top y5)--cycle;
draw flex(z5,z6,z7) soft (z7--z7+cal.extension); % right diagonal
draw rt z3--z6; % bar
math_fit(.5u#-.1cap_height#*slant,ic#); labels(1,2,3,4,5,6,7); endchar;
cmchar "Calligraphic B";
beginchar("B",9.9u#,cap_height#,0);
italcorr max(.8h#*slant-.1w#,.3h#*slant)+.5u#;
adjust_fit(0,0); pickup cal.nib;
lft x1=lft x3=0; x4=.6[x2,x5]; rt x5=.9w; x6=.4w; rt x7=w;
x8=.4[x9,x7]; lft x9=rt x3;
top y1=h+o; bot y3=-o; z2=.3[z3,z1]+bend;
y4=y1; y5=.6[y6,y4]; y6=.55h; y7=.45[y8,y6]; bot y8=-o; y9=.1h;
draw z1-cal.extension--flex(z1,z2,z3); % stem
draw z2{up}...z4...z5{down}...{dir 200}z6{dir 10}
...z7{down}...z8{left}...z9; % lobes
math_fit(.5u#,.3h#*slant+.5u#); labels(1,2,3,4,5,6,7,8,9); endchar;
cmchar "Calligraphic C";
beginchar("C",9.4u#,cap_height#,0);
italcorr max(h#*slant-.15w#,.2h#*slant)+.5u#;
adjust_fit(0,0); pickup cal.nib;
x0=.7[x2,x1]; rt x1=.85w; x2=.6w; lft x3=0; x4=.5w; rt x5=w;
y0=.7h; y1=.8[y0,y2]; top y2=h+o; y3=.5h; bot y4=-o; y5=.2h;
draw (z0{2(x1-x0),y1-y0}...z1) soft
(z1...z2{left}....z3{down}...z4...z5); % stroke
math_fit(.5u#-.5h#*slant,.2h#*slant+.5u#); labels(0,1,2,3,4,5); endchar;
cmchar "Calligraphic D";
beginchar("D",10u#,cap_height#,0);
italcorr .6h#*slant+.5u#;
adjust_fit(4u#,0); pickup cal.nib;
lft x1=lft x3=0; x4=.4[x1,x5]; rt x5=w; x6=.2w; x7=0;
top y1=top y4=h; bot y3=0; z2=.5[z3,z1]+bend;
y5=.55[y6,y4]; bot y6=bot y7=0;
draw flex(z1,z2,z3); % stem
draw z1---z4...z5...z6---z7; % lobe
draw z1{left}...{down}z1-flourish_change; % swash
math_fit(.5u#-.8h#*slant,ic#-.5u#); labels(1,2,3,4,5,6,7); endchar;
cmchar "Calligraphic E";
beginchar("E",8.5u#,cap_height#,0);
italcorr max(h#*slant-.1w#,.2h#*slant)+.5u#;
adjust_fit(0,0); pickup cal.nib;
x1=.9[x3,x2]; rt x2=.9w; x3=.6[x4,x2]; lft x4=.05w;
x5=.7[x6,x2]; lft x6=0; x7=.5[x6,x8]; rt x8=w;
y1=y2-.1h; y2=.9h+o; top y3=h+o; y4=.5[y5,y3];
y5=.55h; y6=.6[y5,y7]; bot y7=-o; y8=.2h;
draw (z1{2(x2-x1),y2-y1}...z2) soft
(z2...z3{left}...z4{down}...{right}z5); % upper arc
draw z5{left}...z6{down}...z7{right}...z8; % lower arc
math_fit(.5u#-.2h#*slant,.2h#*slant+.5u#);
labels(1,2,3,4,5,6,7,8); endchar;
cmchar "Calligraphic F";
beginchar("F",13.5u#,cap_height#,0);
italcorr h#*slant+.5u#;
adjust_fit(-.1w#,0); pickup cal.nib;
x1=.5w; x3=.4w; lft x4=.1w; x5=x2+.35w; x6=.7[x1,x7]; rt x7=w;
top y1=top y6=h; z2=.5[z3,z1]+bend;
bot y3=-o; y4=.1h; y5=y2; y7=.9h;
draw flex(z1,z2,z3) soft (z3...{x4-x3,5(y4-y3)}z4); % stem
draw z1-flourish_change{up}...z1---z6...{down}z7; % upper bar
draw z2--z5--z5-(0,.1cap_curve); % middle bar
math_fit(0,.5ic#); labels(1,2,3,4,5,6,7); endchar;
cmchar "Calligraphic G";
beginchar("G",9.4u#,cap_height#,.5desc_depth#);
italcorr max(h#*slant-.05w#,.5h#*slant)+.5u#;
adjust_fit(0,0); pickup cal.nib;
x0=.7[x2,x1]; rt x1=.95w; x2=.6w; lft x3=0; x4=.5w;
rt x5=w; x6=.5[x7,x5]; lft x7=.2w;
y0=.7h+o; y1=.8[y0,y2]; top y2=h+o; y3=.5[y4,y2]; bot y4=.1h;
y5=.5h; bot y6=-d-o; y7=-.5d;
draw (z0{2(x1-x0),y1-y0}...z1) soft
(z1...z2{left}....z3{down}...z4...{up}z5); % arc
draw z5{down}...z6{left}...z7; % tail
math_fit(.5u#-.4h#*slant,.5h#*slant+.5u#);
labels(0,1,2,3,4,5,6,7); endchar;
cmchar "Calligraphic H";
beginchar("H",12.2u#,cap_height#,0);
italcorr max(h#*slant-.2w#,.15h#*slant)+.5u#;
adjust_fit(4u#,0); pickup cal.nib;
lft x1=lft x3=0; rt x4=rt x6=.8w; rt x9=w;
top y1=top y4=h; bot y3=-o; bot y6=bot_flourish_line; y9=y6+.1h;
z2=.6[z3,z1]+bend; z5=.4[z6,z4]-2bend;
path p[]; p1=flex(z1,z2,z3); p2=flex(z4,z5,z6);
p3=(-w,.55h)--(2w,.55h);
lft z7=p3 intersectionpoint p1; rt z8=p3 intersectionpoint p2;
draw z1-flourish_change{up}....z1-(u,0)---z1 & p1; % left stem
draw p2 soft (z6{right}...{up}z9); % right stem
draw z7--z8; % bar
math_fit(.5u#-.8h#*slant,.15h#*slant+.5u#);
labels(1,2,3,4,5,6,7,8,9); endchar;
cmchar "Calligraphic I";
beginchar("I",10.8u#,cap_height#,0);
italcorr max(h#*slant+.5cap_curve#-.2w#,.15h#*slant)+.5u#;
adjust_fit(0,0); pickup cal.nib;
lft x0=0; x1=.8w; x2=x4=.5w; x5=.2w; x6=.75w; rt x7=w;
y0=.8h; top y1=top y2=h; z3=.5[z4,z2]+bend;
bot y4=bot y5=bot y6=0; y7=.15h;
draw z0{up}...z2---z1; % upper bar
draw flex(z2,z3,z4); % stem
draw z5---z6...{up}z7; % lower bar
math_fit(.5u#-.8h#*slant,.15h#*slant+.5u#);
labels(0,1,2,3,4,5,6,7); endchar;
cmchar "Calligraphic J";
beginchar("J",11.7u#,cap_height#,.5desc_depth#);
italcorr h#*slant+.25u#;
adjust_fit(0,0); pickup cal.nib;
x0=.6w; rt x1=w; rt x2=.75w; x3=.5[x4,x2]; lft x4=0;
top y0=top y1=h; y2=.2h; bot y3=-d-o; y4=d;
draw z1---z0...{down}z0-(4u,2/7h); % upper bar
draw z1{left}...z2{down}...z3{left}...{up}z4; % stem and tail
math_fit(.5u#,0); labels(0,1,2,3,4); endchar;
cmchar "Calligraphic K";
beginchar("K",11u#,cap_height#,0);
italcorr max(h#*slant-.2w#,.2h#*slant)+.5u#;
adjust_fit(0,.1w#); pickup cal.nib;
lft x1=lft x3=0; top y1=h+o; bot y3=-o; z2=.6[z3,z1]+bend;
draw z1-cal.extension--flex(z1,z2,z3); % stem
pickup pencircle xscaled stem yscaled vair rotated 30;
rt x4=.9w; x5=x4-.1w; x7=.8w; rt x8=1.1w;
y4=.9h; top y5=h+o; bot y7=-o; y8=.2h-o;
lft z6=z2+penoffset up of pen_[cal.nib];
draw z4{up}...{left}z5..tension atleast 2..{down}z6
..tension atleast 3 and atleast 2..z7{right}...{up}z8; % diagonals
math_fit(.5u#,.2h#*slant+.5u#);
labels(1,2,3,4,5,6,7,8); endchar;
cmchar "Calligraphic L";
beginchar("L",10.8u#,cap_height#,0);
italcorr .2h#*slant+.5u#;
adjust_fit(0,0); pickup cal.nib;
x1=.2w; x2=x1+.3w; rt x3=x2+.25w; lft x4=0;
x5=.8[x4,x6]; rt x6=w; x7=.2[x4,x5];
y1=.4h-o; top y2=h+o; y3=.8h; bot y4=bot y5=-o; y6=.2h-o; y7=9/70h-o;
path p; p=z4...z7{right}..{right}z5...{up}z6;
draw p; % arm
draw z4{dir .75angle(direction 0 of p)}
...z1{up}...z2{right}...{down}z3; % stem and flourish
math_fit(.5u#,ic#); labels(1,2,3,4,5,6,7); endchar;
cmchar "Calligraphic M";
beginchar("M",19.8u#,cap_height#,0);
italcorr max(h#*slant-u#,.75cap_curve#)+.5cap_curve#+.5u#;
adjust_fit(-.1w#,0); pickup cal.nib;
top z5-z4=top z11-z10=penoffset left of pen_[tilted.nib];
z6=.3[z7,z5]-bend; z9=.3[z8,z10]+.5bend; z12=.3[z13,z11]-bend;
x7=.5[x2,x13]; bot y7=.05h; x13=w; bot y13=bot_flourish_line; z7=z8;
pickup tilted.nib;
lft x1=.1w; x2=.2w; x4=.2[x2,x7]; x10=.8[x7,x13];
y1=.05h+y2; bot y2=bot_flourish_line; top y4=top y10=h+o;
z3=whatever[z2,z4]+2bend; y3=y6;
draw (z1..tension1.2..{right}z2) soft flex(z2,z3,z4); % left stem
draw flex(z8,z9,z10); % right diagonal
pickup cal.nib;
erase fill (0,bot y5)--(w,bot y5)--(w,top y5)--(0,top y5)--cycle;
draw flex(z5,z6,z7); % left diagonal
draw flex(z11,z12,z13) soft (z13--z13+cal.extension); % right stem
math_fit(.5u#-.05h#*slant,ic#); labels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
cmchar "Calligraphic N";
beginchar("N",9u#,cap_height#,0);
italcorr h#*slant+.5u#;
adjust_fit(2u#,3u#); pickup cal.nib;
top z5=z4+penoffset left of pen_[tilted.nib];
z6=.3[z7,z5]-bend; rt z7=(w,0);
pickup tilted.nib;
lft x1=x2-2u; x2=-u; x4=0; rt x8=w; x10=w; rt x11=w+3u;
y1=y2+.05h; bot y2=bot_flourish_line; top y4=h+o;
y3=y6; z3=whatever[z2,z4]+2bend;
y8=0; y10=h; z9=.7[z8,z10]-.5bend; bot y11=h;
draw (z1..tension1.2..{right}z2) soft flex(z2,z3,z4); % left stem
draw flex(z8,z9,z10)...{right}z11; % right stem
pickup cal.nib;
erase fill (-4u,bot y5)--(.5w,bot y5)--(.5w,top y5)--(-4u,top y5)--cycle;
draw flex(z5,z6,z7); % diagonal
math_fit(.5u#-.05h#*slant,.5h#*slant);
labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
cmchar "Calligraphic O";
beginchar("O",12.6u#,cap_height#,0);
italcorr .7h#*slant+.5u#;
adjust_fit(0,0); pickup cal.nib;
x1=.3w; lft x2=0; x3=.5w; rt x4=w; x5=.6w; lft x6=.27w;
top y1=top y5=h+o; y2=.55h; bot y3=-o; y4=.5h; y6=y2;
draw z1...z2{down}...z3{right}...z4{up}...z5{left}...{down}z6; % bowl
math_fit(.5u#-.3h#*slant,ic#-.5u#);
labels(1,2,3,4,5,6); endchar;
cmchar "Calligraphic P";
beginchar("P",9u#,cap_height#,0);
italcorr .8h#*slant+.5u#;
adjust_fit(4u#,0); pickup cal.nib;
lft x1=lft x3=0; x4=x6=.3[x1,x5]; rt x5=w;
top y1=top y4=h; bot y3=-o; y5=.55[y6,y4]; bot y6=.3h;
z2=.5[z3,z1]+bend;
draw flex(z1,z2,z3); % stem
draw z1{left}...{down}z1-flourish_change; % swash
draw z1---z4...z5{down}...{left}z6; % lobe
math_fit(.5u#-.8h#*slant,.5ic#); labels(1,2,3,4,5,6); endchar;
cmchar "Calligraphic Q";
beginchar("Q",11.7u#,cap_height#,.5desc_depth#);
italcorr max(0,.6h#*slant-2u#)+.5u#;
adjust_fit(0,2u#); pickup cal.nib;
x0=.6w; x1=.4w; lft x2=0; x3=.5w; rt x4=w; x5=.6w; lft x6=0;
x7=.15w; rt x8=w; x9=x8+2u;
y0=.25h; bot y1=.15h; y2=.45[y1,y3]; top y3=h+o; y4=.5h; bot y5=0;
y6=y7=y9=0; y8=-d;
draw z0...z1{left}...z2{up}...z3{right}...z4{down}...z5...{left}z7; % bowl
draw z7{right}...z8{right}...{up}z9; % tail
math_fit(.5u#,ic#); labels(0,1,2,3,4,5,6,7,8,9); endchar;
cmchar "Calligraphic R";
beginchar("R",12.6u#,cap_height#,0);
italcorr .2h#*slant;
adjust_fit(4u#,0); pickup cal.nib;
lft x1=lft x3=0; x4=.5[x1,x5]; rt x5=.7w; x6=.4[x1,x5]; rt x7=.8w; rt x8=w;
top y1=top y4=h; bot y3=bot y7=-o; y5=.55[y6,y4]; bot y6=.4h; y8=.2h;
z2=.5[z3,z1]+bend;
draw flex(z1,z2,z3); % stem
draw z1{left}...{down}z1-flourish_change; % swash
draw z1---z4...z5{down}...{left}z6; % lobe
draw z6{right}..tension atleast 2..z7{right}..z8; % tail
math_fit(.5u#-.8h#*slant,ic#); labels(1,2,3,4,5,6,7,8); endchar;
cmchar "Calligraphic S";
beginchar("S",9.9u#,cap_height#,0);
italcorr max(.9h#*slant-.05w#,.3h#*slant)+.5u#;
adjust_fit(0,0); pickup cal.nib;
rt x0=rt x1=.95w; x2=.5[x3,x1]; lft x3=.15w; x4=.5[x6,x2];
rt x5=w; x6=.5w; lft x7=0; lft x8=.075w;
y0=.8h; y1=.9h; top y2=h+o; y3=.55[y4,y2]; y4=.55[y6,y2];
y5=.45[y6,y4]; bot y6=-o; y7=.2h; y8=.35h;
draw (z0--z1) soft (z1...z2{left}...z3{down}...z4...z5{down}
...z6{left}...z7) soft (z7{up}...{right}z8); % stroke
math_fit(.5u#-.3h#*slant,.3h#*slant+.5u#);
labels(0,1,2,3,4,5,6,7,8); endchar;
cmchar "Calligraphic T";
beginchar("T",14u#,cap_height#,0);
italcorr h#*slant+.5u#;
adjust_fit(0,0); pickup cal.nib;
x1=x3=.5w; lft x4=0; x5=w-x6=.25w; rt x7=w;
top y1=h; bot y3=0; y4=5/7h; top y5=top y6=h; top y7=1.1h;
z2=.5[z3,z1]+bend;
x1-x8=x9-x1=2u; y8=y9=y3;
draw z1...z2{down}...{left}z8; % stem
draw z8--z9; % foot
draw z4{up}...z5{right}...z6{right}...{up}z7; % arms
math_fit(.5u#-5/7h#*slant,-u#); labels(1,2,3,4,5,6,7,8,9); endchar;
cmchar "Calligraphic U";
beginchar("U",11u#,cap_height#,0);
italcorr h#*slant+.5u#;
adjust_fit(.1w#,0); pickup cal.nib;
x1=x2-.15w; lft x2=.05w; lft x3=0; x4=.3w; rt x6=rt x8=w;
y1=y2-.05h; top y2=h; y3=.3w; bot y4=-o; top y6=h; bot y8=bot_flourish_line;
z7=.3[z8,z6]-bend;
draw z1...z2{right}..tension atleast 2 and 1..z3{down}
...{right}z4..tension atleast 1.5..{up}z6; % left stem and arc
draw flex(z6,z7,z8) soft (z8--z8+cal.extension); % right stem
math_fit(.5u#-min(.3h#*slant+.1w#,.95h#*slant),.5ic#);
labels(1,2,3,4,6,7,8); endchar;
cmchar "Calligraphic V";
beginchar("V",11u#,cap_height#,0);
italcorr .8h#*slant+.5u#;
adjust_fit(0,0); pickup cal.nib;
x1=0; x2=.5w; top y1=h; bot y2=0;
draw z1{right}..tension atleast 1 and infinity..z2; % left diagonal
pickup tilted.nib;
x3=.5w; rt x4=w; x5=x4-.2w;
y3=0; top y4=.8h; top y5=h;
draw z3..tension atleast 3 and 1..z4{up}...{left}z5; % right diagonal
math_fit(.5u#+.5cap_curve#-h#*slant,.5ic#); labels(1,2,3,4,5); endchar;
cmchar "Calligraphic W";
beginchar("W",18u#,cap_height#,0);
italcorr .8h#*slant+.5u#;
adjust_fit(0,0); pickup cal.nib;
x1=0; x2=.5[x1,x6]; x6=.52w; x8=.6[x6,x10];
top y1=top y6=h; bot y2=bot y8=0;
z7=.5[z8,z6]+bend; z4=.5[z3,z5]+bend;
pickup tilted.nib;
x3=x2; x5=x6; x9=x8; rt x10=w; x11=x10-.1w;
y3=y9=0; top y5=h; top y10=.8h; top y11=h;
draw z3..z4..z5; % second diagonal
erase fill (0,bot y6)--(w,bot y6)--(w,top y6)--(0,top y6)--cycle;
draw z9..tension atleast 3 and 1..z10{up}..{left}z11; % fourth diagonal
pickup cal.nib;
draw z1{right}..tension atleast 1 and infinity..z2; % first diagonal
draw z6..z7..z8; % third diagonal
math_fit(.5u#+.5cap_curve#-h#*slant,.5ic#);
labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
cmchar "Calligraphic X";
beginchar("X",11.4u#,cap_height#,0);
italcorr h#*slant+.5u#;
adjust_fit(0,0); pickup cal.nib;
lft x1=.08w; lft x2=.25w; x4-x3=x2-x1; rt x4=w;
h-y1=y4=1/7h; top y2=h; bot y3=0;
draw z1{up}...z2{right}
..tension atleast 4..{right}z3..{up}z4; % left diagonal
x5=x6-u; rt x6=w; lft x7=0; x8=x7+u;
top y5=h; y6=.9h; y7=h-y6; bot y8=0;
draw z5{right}...z6{down}
..tension atleast 3..{down}z7...{right}z8; % right diagonal
math_fit(.5u#,1/7h#*slant+.5u#); labels(1,2,3,4,5,6,7,8); endchar;
cmchar "Calligraphic Y";
beginchar("Y",10.5u#,cap_height#,.5desc_depth#);
italcorr h#*slant+.5u#;
adjust_fit(.1w#,0); pickup cal.nib;
x1=x2-.15w; lft x2=.05w; lft x3=0; x4=.25w;
rt x6=w; x7=.3[x8,x6]; lft x8=.1w;
y1=y2-.05h; top y2=h; y3=.2[y4,y2]; bot y4=.15h;
top y6=h; bot y7=-d-o; y8=2/3y7;
draw z1...z2{right}..tension atleast 2 and 1..z3{down}
...{right}z4..tension atleast 1.5..{up}z6; % left stem and arc
draw z6{down}...z7{left}...z8; % right stem and tail
math_fit(.5u#-min(.4h#*slant+.1w#,.95h#*slant),.5ic#);
labels(1,2,3,4,6,7,8); endchar;
cmchar "Calligraphic Z";
beginchar("Z",10.4u#,cap_height#,0);
italcorr h#*slant+.5u#;
adjust_fit(0,.1w#); pickup cal.nib;
lft x1=.05w; x2=.4w; rt x3=w; lft x7=0; x8=.8[x7,x9]; rt x9=1.1w;
top y1=58/70h; top y2=top y3=h; bot y7=bot y8=0; bot y9=15/70h;
z5=.55[z7,z3]+bend;
x10=x5-2.5u; x11=x5+2u; x12=.2[x3,x2]; x13=.2[x7,x8];
y10=y5; bot y11=y10-6/70h; y12=64/70h; y13=6/70h;
draw z1{up}...z2{right}...{right}z12...z3; % upper arm
draw flex(z3,z5,z7); % diagonal
draw z7...z13{right}...{right}z8...{up}z9; % lower arm
pickup pencircle xscaled stem yscaled vair rotated 30;
draw z10...z5{right}...{down}z11; % bar
math_fit(.5u#,.5ic#); labels(1,2,3,5,7,8,9,10,11,12,13); endchar;